package com.elvis.singleton;

/**
 * 单例类。提前实例化静态实例保证线程安全
 * final 防止类被继承，private也可以防止类被被继承
 */
public final class IvoryTower {

    /**
     * 私有构造函数防止 new 实例化(反射和序列化可以破坏单例)
     */
    private IvoryTower() {}

    /**
     * 类的静态实例，这样可以保证线程安全，饿汉模式(非懒加载)
     */
    private static final IvoryTower INSTANCE = new IvoryTower();

    /**
     *
     * @return 类的单例
     */
    public static IvoryTower getInstance() {
        return INSTANCE;
    }
}
